package com.clear.auth.domain.service;

import cn.dev33.satoken.stp.SaTokenInfo;
import com.clear.auth.domain.entity.AuthUserBO;

/**
 * 用户领域服务
 */
public interface AuthUserDomainService {
    /**
     * 用户注册
     *
     * @param authUserBO
     */
    Boolean register(AuthUserBO authUserBO);

    /**
     * 更新用户信息
     * @param authUserBO
     * @return
     */
    boolean update(AuthUserBO authUserBO);


    /**
     * 逻辑删除
     * @param authUserBO
     * @return
     */
    boolean delete(AuthUserBO authUserBO);

    /**
     * 用户启用/禁用
     * @param authUserBO
     * @return
     */
    boolean changeStatus(AuthUserBO authUserBO);

    /**
     * 用户登录
     * @param verificationCode
     * @return
     */
    SaTokenInfo doLogin(String verificationCode);

    /**
     * 查看用户信息
     * @param authUserBO
     * @return
     */
    AuthUserBO getUserInfo(AuthUserBO authUserBO);
}
